This report presents a comparison between two different natural language processing techniques. The first technique is a rule based parsing technique and constitutes the main focus of the project. The second technique is a simple keyword search algorithm. These techniques are evaluated and compared against each other.

The project focused on writing an intelligent agent (an assistant) that could help find a recipe in a database through a natural language interface. The user communicates with the AI by writing things about what kind of meal he/she wants, what ingredients to include or not etc. The agent continually searches the dabase for recipes matching the user's wishes and presents the finding to the user. The following decisions were made early in the project:

\begin{itemize}
\item Java as programming language.
\item Oracle database to store all recipes in.
\item Focus on language \textit{understanding} only, not language generation.
\item Use a rule interpretation approach (lexicon, grammars and semantics).
\item Use a form filling technique. Simply fill lists of ingredients to include or exclude, meal categories to include or exclude etc, and generate a database query from these lists.
\end{itemize}

Some additional and initial (but low prioritized) ambitions of the projects were to be able to:

\begin{itemize}
\item represent a mental state
\item support anaphora resolution
\item resolve ambiguities
\end{itemize}

However, due to lack of time these additional features were never implemented. We will discuss all the details regarding this later in the report.

